package com.ryder.petmatediarybackend.module.shop.entity;

import java.time.LocalDateTime;
import java.io.Serial;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import java.io.Serializable;

 /**
 * 描述: 店铺宠物合集表（仅展示，不含交易）(ShopPetCollection)实体类
 * 
 * @author Ryder
 * @version 1.0
 * @since 1.0
 * 更新日期: 2025-10-31 05:03:22
 */
@Data
public class ShopPetCollection implements Serializable {

    @Serial
    private static final long serialVersionUID = 544023942095613110L;

    /**
     * 合集ID（雪花ID生成）
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 店铺ID
     */
    private Long shopId;

    /**
     * 宠物名称
     */
    private String petName;

    /**
     * 宠物类型：1=猫 2=狗 3=其他
     */
    private Integer petType;

    /**
     * 品种
     */
    private String breed;

    /**
     * 年龄（月）
     */
    private String ageMonths;

    /**
     * 性别：1=公 2=母
     */
    private Integer gender;

    /**
     * 价格（仅展示，不支持线上交易）
     */
    private Double price;

    /**
     * 宠物图片（JSON数组，数量≤30）
     */
    private String images;

    /**
     * 描述
     */
    private String description;

    /**
     * 是否已预留：0=否 1=是（仅展示，无线上预约交易）
     */
    private Integer isReserved;

    /**
     * 预留用户ID（展示用途）
     */
    private Long reservedUserId;

    /**
     * 预留时间（展示用途）
     */
    private LocalDateTime reservedTime;

    /**
     * 状态：1=展示中 2=已下架
     */
    private Integer status;

    /**
     * 审核状态：0=待审核 1=审核通过 2=审核驳回
     */
    private Integer auditStatus;

    /**
     * 审核备注
     */
    private String auditRemark;

    /**
     * 逻辑删除：0未删除 1已删除
     */
    @TableLogic
    private Integer isDeleted;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
